//
// Created by Administrator on 2024/3/26.
//
#include<bits/stdc++.h>

using namespace std;
int a[100];
int n = 7;
int tot = 0;

void dfs(int k) {
    //前k个数的和不小于n就要退出
    int s = 0;
    for (int i = 0; i < k; i++) {
        s += a[i];
    }
    if (s >= n) {
        if (s == n) {
            ++tot;
            cout << a[0];
            for (int i = 1; i < k; i++) {
                cout << "+" << a[i];
            }
            cout << endl;
        }
        return;
    }

    for (int i = 1; i < n; i++) {
        if (k >= 1 && i < a[k - 1])continue;
        a[k] = i;
        dfs(k + 1);
    }
}


int main() {
    cin >> n;
    dfs(0);
    cout << "tot=" << tot << endl;
    return 0;
}